home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************
- ** $Id: qt/qfontmetrics.h 3.0.3 edited Oct 12 12:18 $
- **
- ** Definition of QFontMetrics class
- **
- ** Created : 940514
- **
- ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
- **
- ** This file is part of the kernel module of the Qt GUI Toolkit.
- **
- ** This file may be distributed under the terms of the Q Public License
- ** as defined by Trolltech AS of Norway and appearing in the file
- ** LICENSE.QPL included in the packaging of this file.
- **
- ** This file may be distributed and/or modified under the terms of the
- ** GNU General Public License version 2 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.
- **
- ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
- ** licenses may use this file in accordance with the Qt Commercial License
- ** Agreement provided with the Software.
- **
- ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- **
- ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
- ** information about Qt Commercial License Agreements.
- ** See http://www.trolltech.com/qpl/ for QPL licensing information.
- ** See http://www.trolltech.com/gpl/ for GPL licensing information.
- **
- ** Contact info@trolltech.com if any conditions of this licensing are
- ** not clear to you.
- **
- **********************************************************************/
-
- #ifndef QFONTMETRICS_H
- #define QFONTMETRICS_H
-
- #ifndef QT_H
- #include "qfont.h"
- #include "qrect.h"
- #endif // QT_H
-
- class QFontStruct;
- class QTextCodec;
- class QTextParag;
-
- class Q_EXPORT QFontMetrics
- {
- public:
- QFontMetrics( const QFont & );
- QFontMetrics( const QFontMetrics & );
- ~QFontMetrics();
-
- QFontMetrics &operator=( const QFontMetrics & );
-
- int ascent() const;
- int descent() const;
- int height() const;
- int leading() const;
- int lineSpacing() const;
- int minLeftBearing() const;
- int minRightBearing() const;
- int maxWidth() const;
-
- bool inFont(QChar) const;
-
- int leftBearing(QChar) const;
- int rightBearing(QChar) const;
- int width( const QString &, int len = -1 ) const;
-
- int width( QChar ) const;
- #ifndef QT_NO_COMPAT
- int width( char c ) const { return width( (QChar) c ); }
- #endif
-
- int charWidth( const QString &str, int pos ) const;
- QRect boundingRect( const QString &, int len = -1 ) const;
- QRect boundingRect( QChar ) const;
- QRect boundingRect( int x, int y, int w, int h, int flags,
- const QString& str, int len=-1, int tabstops=0,
- int *tabarray=0, QTextParag **intern=0 ) const;
- QSize size( int flags,
- const QString& str, int len=-1, int tabstops=0,
- int *tabarray=0, QTextParag **intern=0 ) const;
-
- int underlinePos() const;
- int strikeOutPos() const;
- int lineWidth() const;
-
- private:
- QFontMetrics( const QPainter * );
- static void reset( const QPainter * );
-
- #if defined(Q_WS_WIN)
- void *textMetric() const;
- HDC hdc() const;
- #elif defined(Q_WS_QWS)
- QFontStruct *internal();
- #endif
-
- friend class QWidget;
- friend class QPainter;
- #if defined( Q_WS_MAC )
- friend class QFontPrivate;
- #endif
-
- QFontPrivate *d;
- QPainter *painter;
- int flags;
-
- bool underlineFlag() const { return (flags & 0x1) != 0; }
- bool strikeOutFlag() const { return (flags & 0x2) != 0; }
- void setUnderlineFlag() { flags |= 0x1; }
- void setStrikeOutFlag() { flags |= 0x2; }
- };
-
-
- #endif // QFONTMETRICS_H
-